 bondscell_results $fbd43578-2061-4bf0-a87c-e193a42998caqueued¤logsrunning¦outputbodymimetext/plainrootassigneelast_run_timestampAlDpersist_js_state·has_pluto_hook_features§cell_id$fbd43578-2061-4bf0-a87c-e193a42998cadepends_on_disabled_cells§runtime9published_object_keysdepends_on_skipped_cells§errored$964d0060-9ed0-4824-a92c-1ae20c25c288queued¤logsrunning¦outputbodymimetext/plainrootassigneelast_run_timestampApersist_js_state·has_pluto_hook_features§cell_id$964d0060-9ed0-4824-a92c-1ae20c25c288depends_on_disabled_cells§runtimepublished_object_keysdepends_on_skipped_cells§errored$49786782-88c7-11ee-361d-9578fba566f6queued¤logsrunning¦outputbodymimetext/plainrootassigneelast_run_timestampApersist_js_state·has_pluto_hook_features§cell_id$49786782-88c7-11ee-361d-9578fba566f6depends_on_disabled_cells§runtime published_object_keysdepends_on_skipped_cells§errored$31c03827-9c7a-45ba-aec4-d45794f3e93fqueued¤logsrunning¦outputbodymsgٮArgumentError: Package AbstractPlutoDingetjes not found in current path:
- Run `import Pkg; Pkg.add("AbstractPlutoDingetjes")` to install the AbstractPlutoDingetjes package.
stacktracecall_short"require(into::Module, mod::Symbol)inlined£urlehttps://github.com/JuliaLang/julia/tree/742b9abb4dd4621b667ec5bb3434b8b3602f96fd/base/loading.jl#L959path./loading.jlsource_packagecall"require(into::Module, mod::Symbol)linfo_typeCore.MethodInstancelineǤfileloading.jlfuncrequireparent_modulefrom_ccall_shorttop-level scopeinlined£urlpathف/home/runner/work/disorganised-mess/disorganised-mess/APD with_js_link bidirectional 1.jl#==#31c03827-9c7a-45ba-aec4-d45794f3e93fsource_packagecalltop-level scopelinfo_typeCore.CodeInfolinefileKAPD with_js_link bidirectional 1.jl#==#31c03827-9c7a-45ba-aec4-d45794f3e93ffunctop-level scopeparent_modulefrom_c¤mime'application/vnd.pluto.stacktrace+objectrootassigneelast_run_timestampA
?:persist_js_state·has_pluto_hook_features§cell_id$31c03827-9c7a-45ba-aec4-d45794f3e93fdepends_on_disabled_cells§runtimepublished_object_keysdepends_on_skipped_cells§errored$24aad28b-8f4e-484f-8301-0c9205a40d66queued¤logsrunning¦outputbodymimetext/plainrootassigneelast_run_timestampA+ðpersist_js_state·has_pluto_hook_features§cell_id$24aad28b-8f4e-484f-8301-0c9205a40d66depends_on_disabled_cells§runtime뷵published_object_keysdepends_on_skipped_cells§errored$3b5f9c8b-200b-4f26-a48e-faf28a6bf80aqueued¤logsrunning¦outputbodymimetext/plainrootassigneelast_run_timestampAղpersist_js_state·has_pluto_hook_features§cell_id$3b5f9c8b-200b-4f26-a48e-faf28a6bf80adepends_on_disabled_cells§runtime,Wpublished_object_keysdepends_on_skipped_cells§errored$3ff49038-6945-4eb4-8ac7-81ac7531572bqueued¤logsrunning¦outputbodymimetext/plainrootassigneelast_run_timestampAXpersist_js_state·has_pluto_hook_features§cell_id$3ff49038-6945-4eb4-8ac7-81ac7531572bdepends_on_disabled_cells§runtimepublished_object_keysdepends_on_skipped_cells§errored$c30f2819-5c76-4ac7-b962-e7d465f652b9queued¤logsrunning¦outputbodymimetext/plainrootassigneelast_run_timestampA\6persist_js_state·has_pluto_hook_features§cell_id$c30f2819-5c76-4ac7-b962-e7d465f652b9depends_on_disabled_cells§runtime˵published_object_keysdepends_on_skipped_cells§errored$cbf6498f-abcf-4d1e-9f03-364aad4d0db5queued¤logsrunning¦outputbodymsg2syntax: extra token "THIS" after end of expressionstacktracesource_packagefilesyntax error.jlfuncthrow_syntax_errorcall_short#throw_syntax_error(syntax_err::Any)inlined£urlbfile:///home/runner/.julia/packages/Pluto/6smog/src/runner/PlutoRunner/src/display/syntax error.jlpath[/home/runner/.julia/packages/Pluto/6smog/src/runner/PlutoRunner/src/display/syntax error.jlcall#throw_syntax_error(syntax_err::Any)linfo_typeCore.MethodInstanceline̲parent_modulefrom_csource_packagefileKAPD with_js_link bidirectional 1.jl#==#cbf6498f-abcf-4d1e-9f03-364aad4d0db5func##function_wrapped_cell#5697call_shorttop-level scopeinlinedãurlpathف/home/runner/work/disorganised-mess/disorganised-mess/APD with_js_link bidirectional 1.jl#==#cbf6498f-abcf-4d1e-9f03-364aad4d0db5calltop-level scopelinfo_typeNothinglineparent_modulefrom_c¤mime'application/vnd.pluto.stacktrace+objectrootassigneelast_run_timestampApersist_js_state·has_pluto_hook_features§cell_id$cbf6498f-abcf-4d1e-9f03-364aad4d0db5depends_on_disabled_cells§runtimepublished_object_keysdepends_on_skipped_cells§errored$e041300e-a263-4eca-976a-0a00c25ae318queued¤logsrunning¦outputbodymimetext/plainrootassigneelast_run_timestampAذpersist_js_state·has_pluto_hook_features§cell_id$e041300e-a263-4eca-976a-0a00c25ae318depends_on_disabled_cells§runtimeµpublished_object_keysdepends_on_skipped_cells§errored$7db59ac0-2c7f-4be7-bdb7-19af83fe82ebqueued¤logsrunning¦outputbodymimetext/plainrootassigneelast_run_timestampA^persist_js_state·has_pluto_hook_features§cell_id$7db59ac0-2c7f-4be7-bdb7-19af83fe82ebdepends_on_disabled_cells§runtime HXpublished_object_keysdepends_on_skipped_cells§errored$9542b8ab-c442-45c9-8f9e-6e710ed71bbbqueued¤logsrunning¦outputbodymimetext/plainrootassigneelast_run_timestampApersist_js_state·has_pluto_hook_features§cell_id$9542b8ab-c442-45c9-8f9e-6e710ed71bbbdepends_on_disabled_cells§runtime餵published_object_keysdepends_on_skipped_cells§errored$80d9b34a-a118-437d-954b-bec3be94273fqueued¤logsrunning¦outputbodymimetext/plainrootassigneelast_run_timestampA|persist_js_state·has_pluto_hook_features§cell_id$80d9b34a-a118-437d-954b-bec3be94273fdepends_on_disabled_cells§runtimeYpublished_object_keysdepends_on_skipped_cells§errored$4d1057f7-c033-4bcb-9b81-a93d96c1a1f8queued¤logsrunning¦outputbody1mimetext/plainrootassigneelast_run_timestampA=persist_js_state·has_pluto_hook_features§cell_id$4d1057f7-c033-4bcb-9b81-a93d96c1a1f8depends_on_disabled_cells§runtime~rpublished_object_keysdepends_on_skipped_cells§errored$24d5cf8a-439c-4b99-a8d6-2f03aefb9658queued¤logsrunning¦outputbodymimetext/plainrootassigneelast_run_timestampA3npersist_js_state·has_pluto_hook_features§cell_id$24d5cf8a-439c-4b99-a8d6-2f03aefb9658depends_on_disabled_cells§runtimepublished_object_keysdepends_on_skipped_cells§errored$6cbae03c-087f-46fb-8577-8d2bcf7fbed6queued¤logsrunning¦outputbody0link_from_julia (generic function with 1 method)mimetext/plainrootassigneelast_run_timestampA%n	persist_js_state·has_pluto_hook_features§cell_id$6cbae03c-087f-46fb-8577-8d2bcf7fbed6depends_on_disabled_cells§runtime published_object_keysdepends_on_skipped_cells§errored$274f0781-26d5-49f6-8306-d81129b8afafqueued¤logsrunning¦outputbodymimetext/plainrootassigneelast_run_timestampApersist_js_state·has_pluto_hook_features§cell_id$274f0781-26d5-49f6-8306-d81129b8afafdepends_on_disabled_cells§runtimepublished_object_keysdepends_on_skipped_cells§errored$4b9adb89-a54b-4cba-9091-79c81168560dqueued¤logslinemsgH[32m[1m  Activating[22m[39m project at `~/.julia/environments/v1.7`
text/plaincell_id$4b9adb89-a54b-4cba-9091-79c81168560dkwargsidPlutoRunner_d1acb81efileP/home/runner/.julia/packages/Pluto/6smog/src/runner/PlutoRunner/src/io/stdout.jlgroupstdoutlevelLogLevel(-555)running¦outputbodymimetext/plainrootassigneelast_run_timestampAFpersist_js_state·has_pluto_hook_features§cell_id$4b9adb89-a54b-4cba-9091-79c81168560ddepends_on_disabled_cells§runtime!lpublished_object_keysdepends_on_skipped_cells§errored$78a32b95-d502-4e96-b074-a1d07e5a51a5queued¤logsrunning¦outputbodymsgٜArgumentError: Package HypertextLiteral not found in current path:
- Run `import Pkg; Pkg.add("HypertextLiteral")` to install the HypertextLiteral package.
stacktracecall_short"require(into::Module, mod::Symbol)inlined£urlehttps://github.com/JuliaLang/julia/tree/742b9abb4dd4621b667ec5bb3434b8b3602f96fd/base/loading.jl#L959path./loading.jlsource_packagecall"require(into::Module, mod::Symbol)linfo_typeCore.MethodInstancelineǤfileloading.jlfuncrequireparent_modulefrom_ccall_shorttop-level scopeinlined£urlpathف/home/runner/work/disorganised-mess/disorganised-mess/APD with_js_link bidirectional 1.jl#==#78a32b95-d502-4e96-b074-a1d07e5a51a5source_packagecalltop-level scopelinfo_typeCore.CodeInfolinefileKAPD with_js_link bidirectional 1.jl#==#78a32b95-d502-4e96-b074-a1d07e5a51a5functop-level scopeparent_modulefrom_c¤mime'application/vnd.pluto.stacktrace+objectrootassigneelast_run_timestampApersist_js_state·has_pluto_hook_features§cell_id$78a32b95-d502-4e96-b074-a1d07e5a51a5depends_on_disabled_cells§runtimepublished_object_keysdepends_on_skipped_cells§errored$9b58eaa7-0cda-4e29-ab11-ed03f40a1c11queued¤logsrunning¦outputbodyprefixBase.RefValue{String}elementsx""text/plaintypestructprefix_shortRefValueobjectid2fe975ecdd853f79mime!application/vnd.pluto.tree+objectrootassigneestatelast_run_timestampACɰpersist_js_state·has_pluto_hook_features§cell_id$9b58eaa7-0cda-4e29-ab11-ed03f40a1c11depends_on_disabled_cells§runtime=̵published_object_keysdepends_on_skipped_cells§errored$9edfc363-c5a9-43b1-94fc-2cd63171ba34queued¤logsrunning¦outputbodymimetext/plainrootassigneelast_run_timestampAJ+Npersist_js_state·has_pluto_hook_features§cell_id$9edfc363-c5a9-43b1-94fc-2cd63171ba34depends_on_disabled_cells§runtime Yǵpublished_object_keysdepends_on_skipped_cells§errored$9985a237-33bd-441f-afda-26c23d351dd5queued¤logsrunning¦outputbodymimetext/plainrootassigneelast_run_timestampA:persist_js_state·has_pluto_hook_features§cell_id$9985a237-33bd-441f-afda-26c23d351dd5depends_on_disabled_cells§runtime˵published_object_keysdepends_on_skipped_cells§errored$af870486-fd6c-40cb-861a-1cf50aaed29bqueued¤logsrunning¦outputbodymimetext/plainrootassigneelast_run_timestampALpersist_js_state·has_pluto_hook_features§cell_id$af870486-fd6c-40cb-861a-1cf50aaed29bdepends_on_disabled_cells§runtime辵published_object_keysdepends_on_skipped_cells§errored$3813b59a-0ca1-41c0-8d5d-559a5b7b1290queued¤logsrunning¦outputbodymsgٮArgumentError: Package AbstractPlutoDingetjes not found in current path:
- Run `import Pkg; Pkg.add("AbstractPlutoDingetjes")` to install the AbstractPlutoDingetjes package.
stacktracecall_short"require(into::Module, mod::Symbol)inlined£urlehttps://github.com/JuliaLang/julia/tree/742b9abb4dd4621b667ec5bb3434b8b3602f96fd/base/loading.jl#L959path./loading.jlsource_packagecall"require(into::Module, mod::Symbol)linfo_typeCore.MethodInstancelineǤfileloading.jlfuncrequireparent_modulefrom_ccall_shorttop-level scopeinlined£urlpathف/home/runner/work/disorganised-mess/disorganised-mess/APD with_js_link bidirectional 1.jl#==#3813b59a-0ca1-41c0-8d5d-559a5b7b1290source_packagecalltop-level scopelinfo_typeCore.CodeInfolinefileKAPD with_js_link bidirectional 1.jl#==#3813b59a-0ca1-41c0-8d5d-559a5b7b1290functop-level scopeparent_modulefrom_c¤mime'application/vnd.pluto.stacktrace+objectrootassigneelast_run_timestampApersist_js_state·has_pluto_hook_features§cell_id$3813b59a-0ca1-41c0-8d5d-559a5b7b1290depends_on_disabled_cells§runtimepublished_object_keysdepends_on_skipped_cells§errored$e9f1432c-2256-42ef-8a80-08d8b0f8b6a7queued¤logsrunning¦outputbodymimetext/plainrootassigneelast_run_timestampA< persist_js_state·has_pluto_hook_features§cell_id$e9f1432c-2256-42ef-8a80-08d8b0f8b6a7depends_on_disabled_cells§runtime祵published_object_keysdepends_on_skipped_cells§errored$7ece8b4f-d929-4629-b395-56c98bf14de9queued¤logsrunning¦outputbodymimetext/plainrootassigneelast_run_timestampA"Fpersist_js_state·has_pluto_hook_features§cell_id$7ece8b4f-d929-4629-b395-56c98bf14de9depends_on_disabled_cells§runtime-published_object_keysdepends_on_skipped_cells§errored±cell_dependencies $fbd43578-2061-4bf0-a87c-e193a42998caprecedence_heuristic	cell_id$fbd43578-2061-4bf0-a87c-e193a42998cadownstream_cells_mapupstream_cells_map$964d0060-9ed0-4824-a92c-1ae20c25c288precedence_heuristic	cell_id$964d0060-9ed0-4824-a92c-1ae20c25c288downstream_cells_mapupstream_cells_map$49786782-88c7-11ee-361d-9578fba566f6precedence_heuristiccell_id$49786782-88c7-11ee-361d-9578fba566f6downstream_cells_mapPkg$4b9adb89-a54b-4cba-9091-79c81168560dupstream_cells_map$31c03827-9c7a-45ba-aec4-d45794f3e93fprecedence_heuristic	cell_id$31c03827-9c7a-45ba-aec4-d45794f3e93fdownstream_cells_mapwith_js_linkupstream_cells_map$24aad28b-8f4e-484f-8301-0c9205a40d66precedence_heuristic	cell_id$24aad28b-8f4e-484f-8301-0c9205a40d66downstream_cells_mapupstream_cells_map$3b5f9c8b-200b-4f26-a48e-faf28a6bf80aprecedence_heuristic	cell_id$3b5f9c8b-200b-4f26-a48e-faf28a6bf80adownstream_cells_mapupstream_cells_map$3ff49038-6945-4eb4-8ac7-81ac7531572bprecedence_heuristic	cell_id$3ff49038-6945-4eb4-8ac7-81ac7531572bdownstream_cells_mapupstream_cells_map$c30f2819-5c76-4ac7-b962-e7d465f652b9precedence_heuristic	cell_id$c30f2819-5c76-4ac7-b962-e7d465f652b9downstream_cells_mapupstream_cells_map$cbf6498f-abcf-4d1e-9f03-364aad4d0db5precedence_heuristic	cell_id$cbf6498f-abcf-4d1e-9f03-364aad4d0db5downstream_cells_mapupstream_cells_mapPlutoRunnerPlutoRunner.throw_syntax_error$e041300e-a263-4eca-976a-0a00c25ae318precedence_heuristic	cell_id$e041300e-a263-4eca-976a-0a00c25ae318downstream_cells_mapupstream_cells_map$7db59ac0-2c7f-4be7-bdb7-19af83fe82ebprecedence_heuristic	cell_id$7db59ac0-2c7f-4be7-bdb7-19af83fe82ebdownstream_cells_mapBase.showBase.put!JSGeneratorFinish$6cbae03c-087f-46fb-8577-8d2bcf7fbed6JSGenerator$6cbae03c-087f-46fb-8577-8d2bcf7fbed6$7db59ac0-2c7f-4be7-bdb7-19af83fe82ebupstream_cells_mapBaseIOwriteJSGenerator$7db59ac0-2c7f-4be7-bdb7-19af83fe82eb@MIME_str$9542b8ab-c442-45c9-8f9e-6e710ed71bbbprecedence_heuristic	cell_id$9542b8ab-c442-45c9-8f9e-6e710ed71bbbdownstream_cells_mapupstream_cells_map$80d9b34a-a118-437d-954b-bec3be94273fprecedence_heuristic	cell_id$80d9b34a-a118-437d-954b-bec3be94273fdownstream_cells_mapupstream_cells_map$4d1057f7-c033-4bcb-9b81-a93d96c1a1f8precedence_heuristic	cell_id$4d1057f7-c033-4bcb-9b81-a93d96c1a1f8downstream_cells_mapupstream_cells_mapput!Channeltake!$24d5cf8a-439c-4b99-a8d6-2f03aefb9658precedence_heuristic	cell_id$24d5cf8a-439c-4b99-a8d6-2f03aefb9658downstream_cells_mapupstream_cells_map$6cbae03c-087f-46fb-8577-8d2bcf7fbed6precedence_heuristic	cell_id$6cbae03c-087f-46fb-8577-8d2bcf7fbed6downstream_cells_maplink_from_juliaupstream_cells_map+AbstractPlutoDingetjes.Display.with_js_linkput!===AbstractPlutoDingetjes$3813b59a-0ca1-41c0-8d5d-559a5b7b1290ChannelJSGeneratorFinish$7db59ac0-2c7f-4be7-bdb7-19af83fe82ebBoolJSGenerator$7db59ac0-2c7f-4be7-bdb7-19af83fe82ebReftake!$274f0781-26d5-49f6-8306-d81129b8afafprecedence_heuristic	cell_id$274f0781-26d5-49f6-8306-d81129b8afafdownstream_cells_mapupstream_cells_map$4b9adb89-a54b-4cba-9091-79c81168560dprecedence_heuristiccell_id$4b9adb89-a54b-4cba-9091-79c81168560ddownstream_cells_mapupstream_cells_mapPkg$49786782-88c7-11ee-361d-9578fba566f6Pkg.activate$78a32b95-d502-4e96-b074-a1d07e5a51a5precedence_heuristiccell_id$78a32b95-d502-4e96-b074-a1d07e5a51a5downstream_cells_mapHypertextLiteralupstream_cells_map$9b58eaa7-0cda-4e29-ab11-ed03f40a1c11precedence_heuristic	cell_id$9b58eaa7-0cda-4e29-ab11-ed03f40a1c11downstream_cells_mapstate$9edfc363-c5a9-43b1-94fc-2cd63171ba34upstream_cells_mapRef$9edfc363-c5a9-43b1-94fc-2cd63171ba34precedence_heuristic	cell_id$9edfc363-c5a9-43b1-94fc-2cd63171ba34downstream_cells_mapupstream_cells_mapText|>state$9b58eaa7-0cda-4e29-ab11-ed03f40a1c11$9985a237-33bd-441f-afda-26c23d351dd5precedence_heuristic	cell_id$9985a237-33bd-441f-afda-26c23d351dd5downstream_cells_mapupstream_cells_map$af870486-fd6c-40cb-861a-1cf50aaed29bprecedence_heuristic	cell_id$af870486-fd6c-40cb-861a-1cf50aaed29bdownstream_cells_mapupstream_cells_map$3813b59a-0ca1-41c0-8d5d-559a5b7b1290precedence_heuristiccell_id$3813b59a-0ca1-41c0-8d5d-559a5b7b1290downstream_cells_mapAbstractPlutoDingetjes$6cbae03c-087f-46fb-8577-8d2bcf7fbed6upstream_cells_map$e9f1432c-2256-42ef-8a80-08d8b0f8b6a7precedence_heuristic	cell_id$e9f1432c-2256-42ef-8a80-08d8b0f8b6a7downstream_cells_mapupstream_cells_map$7ece8b4f-d929-4629-b395-56c98bf14de9precedence_heuristic	cell_id$7ece8b4f-d929-4629-b395-56c98bf14de9downstream_cells_mapupstream_cells_mapcell_execution_order $49786782-88c7-11ee-361d-9578fba566f6$4b9adb89-a54b-4cba-9091-79c81168560d$3813b59a-0ca1-41c0-8d5d-559a5b7b1290$78a32b95-d502-4e96-b074-a1d07e5a51a5$31c03827-9c7a-45ba-aec4-d45794f3e93f$3b5f9c8b-200b-4f26-a48e-faf28a6bf80a$7db59ac0-2c7f-4be7-bdb7-19af83fe82eb$4d1057f7-c033-4bcb-9b81-a93d96c1a1f8$6cbae03c-087f-46fb-8577-8d2bcf7fbed6$9b58eaa7-0cda-4e29-ab11-ed03f40a1c11$7ece8b4f-d929-4629-b395-56c98bf14de9$9edfc363-c5a9-43b1-94fc-2cd63171ba34$24d5cf8a-439c-4b99-a8d6-2f03aefb9658$cbf6498f-abcf-4d1e-9f03-364aad4d0db5$3ff49038-6945-4eb4-8ac7-81ac7531572b$274f0781-26d5-49f6-8306-d81129b8afaf$9985a237-33bd-441f-afda-26c23d351dd5$964d0060-9ed0-4824-a92c-1ae20c25c288$e041300e-a263-4eca-976a-0a00c25ae318$9542b8ab-c442-45c9-8f9e-6e710ed71bbb$24aad28b-8f4e-484f-8301-0c9205a40d66$e9f1432c-2256-42ef-8a80-08d8b0f8b6a7$af870486-fd6c-40cb-861a-1cf50aaed29b$c30f2819-5c76-4ac7-b962-e7d465f652b9$fbd43578-2061-4bf0-a87c-e193a42998ca$80d9b34a-a118-437d-954b-bec3be94273flast_hot_reload_time        shortpath#APD with_js_link bidirectional 1.jlprocess_statusreadypathY/home/runner/work/disorganised-mess/disorganised-mess/APD with_js_link bidirectional 1.jlpluto_versionv0.19.47last_save_timeAcell_order $49786782-88c7-11ee-361d-9578fba566f6$4b9adb89-a54b-4cba-9091-79c81168560d$3813b59a-0ca1-41c0-8d5d-559a5b7b1290$31c03827-9c7a-45ba-aec4-d45794f3e93f$78a32b95-d502-4e96-b074-a1d07e5a51a5$3b5f9c8b-200b-4f26-a48e-faf28a6bf80a$4d1057f7-c033-4bcb-9b81-a93d96c1a1f8$6cbae03c-087f-46fb-8577-8d2bcf7fbed6$7db59ac0-2c7f-4be7-bdb7-19af83fe82eb$9b58eaa7-0cda-4e29-ab11-ed03f40a1c11$7ece8b4f-d929-4629-b395-56c98bf14de9$9edfc363-c5a9-43b1-94fc-2cd63171ba34$24d5cf8a-439c-4b99-a8d6-2f03aefb9658$cbf6498f-abcf-4d1e-9f03-364aad4d0db5$3ff49038-6945-4eb4-8ac7-81ac7531572b$274f0781-26d5-49f6-8306-d81129b8afaf$9985a237-33bd-441f-afda-26c23d351dd5$964d0060-9ed0-4824-a92c-1ae20c25c288$e041300e-a263-4eca-976a-0a00c25ae318$9542b8ab-c442-45c9-8f9e-6e710ed71bbb$24aad28b-8f4e-484f-8301-0c9205a40d66$e9f1432c-2256-42ef-8a80-08d8b0f8b6a7$af870486-fd6c-40cb-861a-1cf50aaed29b$c30f2819-5c76-4ac7-b962-e7d465f652b9$fbd43578-2061-4bf0-a87c-e193a42998ca$80d9b34a-a118-437d-954b-bec3be94273fpublished_objectsnbpkginstall_time_nsinstantiatedòinstalled_versionsterminal_outputsenabled·restart_recommended_msgrestart_required_msgbusy_packageswaiting_for_permission,waiting_for_permission_but_probably_disabled«cell_inputs $fbd43578-2061-4bf0-a87c-e193a42998cacell_id$fbd43578-2061-4bf0-a87c-e193a42998cacodemetadatashow_logsèdisabled®skip_as_script«code_folded$964d0060-9ed0-4824-a92c-1ae20c25c288cell_id$964d0060-9ed0-4824-a92c-1ae20c25c288codemetadatashow_logsèdisabled®skip_as_script«code_folded$49786782-88c7-11ee-361d-9578fba566f6cell_id$49786782-88c7-11ee-361d-9578fba566f6codeusing Pkgmetadatashow_logsèdisabled®skip_as_script«code_folded$31c03827-9c7a-45ba-aec4-d45794f3e93fcell_id$31c03827-9c7a-45ba-aec4-d45794f3e93fcode0import AbstractPlutoDingetjes.Bonds.with_js_linkmetadatashow_logsèdisabled®skip_as_script«code_folded$24aad28b-8f4e-484f-8301-0c9205a40d66cell_id$24aad28b-8f4e-484f-8301-0c9205a40d66codemetadatashow_logsèdisabled®skip_as_script«code_folded$3b5f9c8b-200b-4f26-a48e-faf28a6bf80acell_id$3b5f9c8b-200b-4f26-a48e-faf28a6bf80acode# let
# 	messages_to_js = Channel()
# 	send_to_js(msg) = put!(messages_to_js, msg)


# 	function get_next_message(_ignore)
# 		take!(messages_to_js)
# 	end


# 	@async begin
# 		sleep(5)
# 		for i in 1:10
# 			send_to_js(i)
# 			sleep(.3)
# 		end
# 	end
	


# 	@htl("""
# 	<script>
# 	const get_next_msg_from_julia = $(AbstractPlutoDingetjes.Display.with_js_link(get_next_message))

# 		let running = true
# 		let messages = async function* () {
# 			while(running) {
# 				yield await get_next_msg_from_julia()
# 			}
# 		}
# 		invalidation.then(() => {
# 			running = false
# 		})

# 		for await (const msg of messages()) {
# 			console.log(msg)
# 		}

# </script>
# """)

# endmetadatashow_logsèdisabled®skip_as_script«code_folded$3ff49038-6945-4eb4-8ac7-81ac7531572bcell_id$3ff49038-6945-4eb4-8ac7-81ac7531572bcodemetadatashow_logsèdisabled®skip_as_script«code_folded$c30f2819-5c76-4ac7-b962-e7d465f652b9cell_id$c30f2819-5c76-4ac7-b962-e7d465f652b9codemetadatashow_logsèdisabled®skip_as_script«code_folded$cbf6498f-abcf-4d1e-9f03-364aad4d0db5cell_id$cbf6498f-abcf-4d1e-9f03-364aad4d0db5codesBUT THIS ONLY WORKS FOR ONE CLIENT

WHCIH it should

but right now the messages go "randomly" to one of the clientsmetadatashow_logsèdisabled®skip_as_script«code_folded$e041300e-a263-4eca-976a-0a00c25ae318cell_id$e041300e-a263-4eca-976a-0a00c25ae318codemetadatashow_logsèdisabled®skip_as_script«code_folded$7db59ac0-2c7f-4be7-bdb7-19af83fe82ebcell_id$7db59ac0-2c7f-4be7-bdb7-19af83fe82ebcode`begin
	struct JSGeneratorFinish end
	
	struct JSGenerator
		APDlink
		channel
	end

	Base.put!(jsg::JSGenerator, msg) = put!(jsg.channel, msg)
	function Base.show(io::IO, m::MIME"text/javascript", wjl::JSGenerator)
		write(io, """(() => {
		let messages = async function* () {
			while(true) {
				let next = await """)
		show(io, m, wjl.APDlink)
		write(io, """();
				if(next === `__jsgen_stop`) return;
				yield next;
			}
		};
		let gen = messages();
		
		invalidation.then(async () => {
			console.log("stopping! 1")
			gen.return()
			console.log("stopping! 2")
		});
		return gen;
		})()""")
	end
endmetadatashow_logsèdisabled®skip_as_script«code_folded$9542b8ab-c442-45c9-8f9e-6e710ed71bbbcell_id$9542b8ab-c442-45c9-8f9e-6e710ed71bbbcodemetadatashow_logsèdisabled®skip_as_script«code_folded$80d9b34a-a118-437d-954b-bec3be94273fcell_id$80d9b34a-a118-437d-954b-bec3be94273fcodemetadatashow_logsèdisabled®skip_as_script«code_folded$4d1057f7-c033-4bcb-9b81-a93d96c1a1f8cell_id$4d1057f7-c033-4bcb-9b81-a93d96c1a1f8code-let
	c = Channel(1)
	put!(c, 1)
	take!(c)
endmetadatashow_logsèdisabled®skip_as_script«code_folded$24d5cf8a-439c-4b99-a8d6-2f03aefb9658cell_id$24d5cf8a-439c-4b99-a8d6-2f03aefb9658codemetadatashow_logsèdisabled®skip_as_script«code_folded$6cbae03c-087f-46fb-8577-8d2bcf7fbed6cell_id$6cbae03c-087f-46fb-8577-8d2bcf7fbed6codeMfunction link_from_julia()
	messages_to_js = Channel()
	running_ref = Ref{Bool}(true)

	function get_next_message(_ignore)
		if running_ref[]
			# state[] *= "\nwaiting"
			# @debug "waiting"
			next = take!(messages_to_js)
			# @info "done!" next
			# state[] *= "\ndone $(next)"
			
			if next === JSGeneratorFinish()
				"__jsgen_stop"
			else
				next
			end
		else
			"__jsgen_stop"
		end
	end

	function stop_generator()
		# @debug "stopping"
		# state[] *= "\nstopping"
		if running_ref[]
			running_ref[] = false
			# TODO if available
			# TODO what if there are multiple clients connected?
			put!(messages_to_js, JSGeneratorFinish())
			# state[] *= "\nstopped"
		end
		
	end

	js_generator = JSGenerator(
		AbstractPlutoDingetjes.Display.with_js_link(get_next_message, stop_generator),
		messages_to_js,
	)
	
	return js_generator
endmetadatashow_logsèdisabled®skip_as_script«code_folded$274f0781-26d5-49f6-8306-d81129b8afafcell_id$274f0781-26d5-49f6-8306-d81129b8afafcodemetadatashow_logsèdisabled®skip_as_script«code_folded$4b9adb89-a54b-4cba-9091-79c81168560dcell_id$4b9adb89-a54b-4cba-9091-79c81168560dcodePkg.activate()metadatashow_logsèdisabled®skip_as_script«code_folded$78a32b95-d502-4e96-b074-a1d07e5a51a5cell_id$78a32b95-d502-4e96-b074-a1d07e5a51a5codeusing HypertextLiteralmetadatashow_logsèdisabled®skip_as_script«code_folded$9b58eaa7-0cda-4e29-ab11-ed03f40a1c11cell_id$9b58eaa7-0cda-4e29-ab11-ed03f40a1c11codestate = Ref("")metadatashow_logsèdisabled®skip_as_script«code_folded$9edfc363-c5a9-43b1-94fc-2cd63171ba34cell_id$9edfc363-c5a9-43b1-94fc-2cd63171ba34codestate[] |> Textmetadatashow_logsèdisabled®skip_as_script«code_folded$9985a237-33bd-441f-afda-26c23d351dd5cell_id$9985a237-33bd-441f-afda-26c23d351dd5codemetadatashow_logsèdisabled®skip_as_script«code_folded$af870486-fd6c-40cb-861a-1cf50aaed29bcell_id$af870486-fd6c-40cb-861a-1cf50aaed29bcodemetadatashow_logsèdisabled®skip_as_script«code_folded$3813b59a-0ca1-41c0-8d5d-559a5b7b1290cell_id$3813b59a-0ca1-41c0-8d5d-559a5b7b1290codeusing AbstractPlutoDingetjesmetadatashow_logsèdisabled®skip_as_script«code_folded$e9f1432c-2256-42ef-8a80-08d8b0f8b6a7cell_id$e9f1432c-2256-42ef-8a80-08d8b0f8b6a7codemetadatashow_logsèdisabled®skip_as_script«code_folded$7ece8b4f-d929-4629-b395-56c98bf14de9cell_id$7ece8b4f-d929-4629-b395-56c98bf14de9code# let
# 	link = link_from_julia()

# 	@async begin
# 		sleep(5)
# 		for i in 1:10
# 			put!(link, i)
# 			sleep(.3)
# 		end
# 	end

# 	@htl("""
# 	<script>
# 	for await (const msg of $(link)) {
# 		console.log(msg)
# 	}
	
# 	</script>
# 	""")
# endmetadatashow_logsèdisabled®skip_as_script«code_folded«notebook_id$75066d96-4aad-11f0-31cf-b50fdf4fd70ein_temp_dir¨metadata